//
// Created by zuo on 2024/7/4.
// 题目链接  https://www.lanqiao.cn/problems/549/learning/?page=1&first_category_id=1&problem_id=549
//

#include<bits/stdc++.h>
using namespace std;

// 定义在 main 外面的数组  初始化都是0
const int N = 10;
int a[N][N];

int main()
{
    int n, m;
    cin >> n >> m;
    int mp[n][m], ans[n][m];
    // 获取输入
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cin >> mp[i][j];
            ans[i][j] = 0; // 记得初始化为零
        }
    }
    // 计算九宫格雷的数量
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (mp[i][j] == 1)
            {
                ans[i][j] = 9;
                continue; // 不需要计算九宫格雷数了
            }
            for (int _i = max(0, i - 1); _i <= min(n - 1, i + 1); _i++)
            {
                for (int _j = max(0, j - 1); _j <= min(m - 1, j + 1); _j++)
                {
                    if (mp[_i][_j]) ans[i][j]++;
                }
            }
        }
    }
    // 输出结果
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cout << ans[i][j] << ' ';
        }
        cout << '\n';
    }

    return 0;
}
